export default {
	// 为当前模块开启命名空间
	namespaced: true,
	// 模块的 state 数据
	state: () => ({
		// 收货地址
		address: JSON.parse(uni.getStorageSync('address') || '{}'),
		token: uni.getStorageSync('token') || '',
		// 用户的信息对象
		userinfo: JSON.parse(uni.getStorageSync('userinfo') || '{}'),
		// 重定向的 object 对象 { openType, from }
		redirectInfo: null
	}),
	// 模块的 mutations 方法
	mutations: {
		// 1.存储用户的收货地址
		updateAddress(state, user) {
			state.address = user
			this.commit('m_user/saveAddressToStorage')
		},
		// 数据刷新之后清除了,如何保存?
		saveAddressToStorage(state) {
			uni.setStorageSync('address', JSON.stringify(state.address))
		},
		// 2.存储用户的用户信息
		updateUserInfo(state, userinfo) {
			state.userinfo = userinfo
			this.commit('m_user/saveUserInfoToStorage')
		},
		// 数据刷新之后清除了,如何保存?
		saveUserInfoToStorage(state) {
			uni.setStorageSync('userinfo', JSON.stringify(state.userinfo))
		},
		// 3.存储用户的登录token
		updateToken(state, token) {
			state.token = token
			this.commit('m_user/saveTokenToStorage')
		},
		// 数据刷新之后清除了,如何保存?
		saveTokenToStorage(state) {
			uni.setStorageSync('token', state.token)
		},
		// 4.更新重定向的信息对象
		updateRedirectInfo(state, info) {
			state.redirectInfo = info
			// console.log(state.redirectInfo);
		}
	},
	// 模块的 getters 属性(计算属性)
	getters: {
		addstr(state) {
			if (!state.address.provinceName) return ''
			// 拼接 省，市，区，详细地址 的字符串并返回给用户
			return state.address.provinceName + state.address.cityName + state.address.countyName + state.address
				.detailInfo
		}
	}
}
